package initalize

import (
	"RoccBlog/global"
	"github.com/casbin/casbin/v2"
	"github.com/casbin/casbin/v2/model"
	gormadapter "github.com/casbin/gorm-adapter/v3"
	"log"
)

// CaSbinInit 初始化caSbin
func CaSbinInit() *casbin.Enforcer {
	// 创建适配器，通过现有的数据库链接
	db, err := gormadapter.NewAdapterByDB(global.DB)
	if err != nil {
		log.Fatalln("casbin 创建适配器失败", err.Error())
	}
	// 读取模型
	m, err := model.NewModelFromFile("./config/model.pml")
	if err != nil {
		log.Fatalln("casbin 读取模型失败！", err.Error())
	}
	// 创建新的执行器
	enforcer, err := casbin.NewEnforcer(m, db)
	if err != nil {
		log.Fatalln("casbin 创建执行器失败！", err.Error())
	}
	return enforcer
}
